package magic.deckbuilder;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;

public class DeckAdapter extends BaseAdapter {
	
	public interface DeckAdapterListener {
		public void onClick(Deck item, int position);
	}


	private List<Deck> decks;
	private LayoutInflater inflater;
	private ArrayList<DeckAdapterListener> listeners;

	public DeckAdapter(Context context, List<Deck> decks) {
		this.decks = decks;
		inflater = LayoutInflater.from(context);
		this.listeners = new ArrayList<DeckAdapterListener>();
	}

	@Override
	public int getCount() {
		return decks.size();
	}

	@Override
	public Object getItem(int position) {
		return decks.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		LinearLayout layoutItem;
		// (1) : Réutilisation des layouts
		if (convertView == null) {
			// Initialisation de notre item à partir du layout XML
			// "decks_layout.xml"
			layoutItem = (LinearLayout) inflater.inflate(R.layout.decks_layout, parent, false);
		} else {
			layoutItem = (LinearLayout) convertView;
		}

		// (2) : Récupération des TextView de notre layout
		TextView tv_TAG = (TextView) layoutItem.findViewById(R.id.TV_DeckTAG);
		TextView tv_Resume = (TextView) layoutItem.findViewById(R.id.TV_DeckResume);

		// (3) : Renseignement des valeurs
		tv_TAG.setText(decks.get(position).getTag());
		tv_Resume.setText(decks.get(position).getResume());

		// On retourne l'item créé.
		return layoutItem;
	}
	
	//Contient la liste des listeners
		/**
		 * Pour ajouter un listener sur notre adapter
		 */
		public void addListener(DeckAdapterListener listener) {
		    listeners.add(listener);
		}
		
		/// TODO :: Revoir les listeners

}
